package com.cmc.cloud.cmclink.doc.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cmes.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 提单主信息 DO
 *
 * @author 集运管理员
 */
@TableName("doc_blno")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BlnoDO extends BaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 订舱号
     */
    private String bookingNo;
    /**
     * 提单号
     */
    private String blNo;
    /**
     * 客户业务号
     */
    private String referenceNo;
    /**
     * 订舱船名
     */
    private String bkgVesselCode;
    /**
     * 订舱航次
     */
    private String bkgVoyage;
    /**
     * 路径id
     */
    private Long routeId;
    /**
     * 订舱港口
     */
    private String currentPort;
    /**
     * 接货地
     */
    private String porCode;
    /**
     * 装货港
     */
    private String polCode;
    /**
     * 卸货港
     */
    private String podCode;
    /**
     * 目的地
     */
    private String delCode;
    /**
     * 订舱人代码
     */
    private String bkpCode;
    /**
     * 一代代码
     */
    private String topAgentCode;
    /**
     * 协议号
     */
    private String agreementNo;
    /**
     * 运输条款
     */
    private String shippingTerm;
    /**
     * 舱位代码
     */
    private String spaceOwner;
    /**
     * 箱主代码
     */
    private String cntrOwner;
    /**
     * 箱状态
     */
    private String cntrStatus;
    /**
     * 提单类型
     */
    private String blType;
    /**
     * 客户要求签单类型
     */
    private String signOrder;
    /**
     * 实际签单类型
     */
    private String signType;
    /**
     * 提单拆并单类型
     */
    private String splitCombineType;
    /**
     * 始发港提单状态
     */
    private String siStatus;
    /**
     * si通知邮箱 （收，可多）
     */
    private String siNotifyEmails;
    /**
     * 锁单标识
     */
    private Boolean blLockFlag;
    /**
     * D/O状态
     */
    private String doStatus;
    /**
     * 接货地名称
     */
    private String porDesc;
    /**
     * 装货港名称
     */
    private String polDesc;
    /**
     * 卸货港名称
     */
    private String podDesc;
    /**
     * 目的地名称
     */
    private String delDesc;
    /**
     * 提单打印份数
     */
    private Integer printBlNumber;
    /**
     * 提单打印地
     */
    private String issuePlace;
    /**
     * 签单日期
     */
    private LocalDate issueDate;
    /**
     * 签发小船提单
     */
    private Boolean issueFeederBl;
    /**
     * 签发小船装港
     */
    private Boolean issueFeederPlace;
    /**
     * 提单主体代码
     */
    private String blEntity;
    /**
     * 出口操作代理
     */
    private String porOperateAgentCode;
    /**
     * 进口操作代理
     */
    private String delOperateAgentCode;
    /**
     * 进口报关用中转类型
     */
    private String transitTermIm;
    /**
     * 出口费用锁
     */
    private Boolean exPaymentLock;
    /**
     * 进口费用锁
     */
    private Boolean imPaymentLock;
    /**
     * 审批流程id
     */
    private String processInstanceId;
    /**
     * 审批流状态
     */
    private Integer approveStatus;
    /**
     * 目的港提单标记
     */
    private Boolean podBlFlag;
    /**
     * 数据来源
     */
    private String datasource;
    /**
     * 日本海关舱单
     */
    private String houseBillNo;
    /**
     * 申请签单的时间
     */
    private LocalDateTime signOrderTime;
    /**
     * D/O 锁
     */
    private Boolean doLock;

    /**
     * SI确认标记
     */
    private Boolean siConfirmFlag;

    /**
     * 扣单标识
     */
    private Boolean restrictionFlag;

    /**
     * 电子保函登记类型
     */
    private String elgReceive;

    /**
     * 正本保函登记类型
     */
    private String lgReceive;

    /**
     * 日本目的港专用
     */
    private String houseBill;

    /**
     * 原版本提单id
     */
    private Long oldBlnoId;

    /**
     * si 更改状态
     */
    private String siChangeStatus;

    /**
     *  si 数据有效标记  0：待审核 1：有效（提单创建默认）2：无效数据
     */
    private String valid;

}
